﻿using System;
using System.Collections.Generic;
using System.Text;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Xpo;
using DevExpress.Persistent.Base;
using System.ComponentModel;

namespace WinSCM.Module.Model
{
    [NavigationItem("财务管理")]
    [DefaultProperty("凭证字")]
    public class 记账凭证 : BaseObject
    {
        public 记账凭证(Session session)
            : base(session)
        {

        }
        private 凭证字 _凭证字;
        [Custom("Caption", "凭证字")]
        public 凭证字 凭证字
        {
            get { return _凭证字; }
            set { SetPropertyValue<凭证字>("凭证字", ref _凭证字, value); }
        }
        private DateTime _日期;
        [Custom("Caption", "日期")]
        public DateTime 日期
        {
            get { return _日期; }
            set { SetPropertyValue<DateTime>("日期", ref _日期, value); }
        }
        
        private int _凭证号;
        [Custom("Caption", "凭证号")]
        public int 凭证号
        {
            get { return _凭证号; }
            set { SetPropertyValue<int>("凭证号", ref _凭证号, value); }
        }
        private int _附件数;
        [Custom("Caption", "附件数")]
        public int 附件数
        {
            get { return _附件数; }
            set { SetPropertyValue<int>("附件数", ref _附件数, value); }
        }
        private int _序号;
        [Custom("Caption", "序号")]
        public int 序号
        {
            get { return _序号; }
            set { SetPropertyValue<int>("序号", ref _序号, value); }
        }
        private 职员 _审核人;
        [Custom("Caption", "审核人")]
        public 职员 审核人
        {
            get { return _审核人; }
            set { SetPropertyValue<职员>("审核人", ref _审核人, value); }
        }
        [Association("记账凭证-明细")]
        public XPCollection<记账凭证明细> 记账凭证明细
        {
            get { return GetCollection<记账凭证明细>("记账凭证明细"); }
        }
    }

    public class 记账凭证明细 : BaseObject
    {
        public 记账凭证明细(Session session)
            : base(session)
        {

        }
        private 记账凭证 _记账凭证;
        [Custom("Caption", "记账凭证")]
        [Association("记账凭证-明细")]
        public 记账凭证 记账凭证
        {
            get { return _记账凭证; }
            set { SetPropertyValue<记账凭证>("记账凭证", ref _记账凭证, value); }
        }

        private 摘要库 _摘要;
        [Custom("Caption", "摘要")]
        public 摘要库 摘要
        {
            get { return _摘要; }
            set { SetPropertyValue<摘要库>("摘要", ref _摘要, value); }
        }
        private 会计科目 _科目;
        [Custom("Caption", "科目")]
        public 会计科目 科目
        {
            get { return _科目; }
            set { SetPropertyValue<会计科目>("科目", ref _科目, value); }
        }
        private decimal _借方;
        [Custom("Caption", "借方")]
        public decimal 借方
        {
            get { return _借方; }
            set { SetPropertyValue<decimal>("借方", ref _借方, value); }
        }
        private decimal _贷方;
        [Custom("Caption", "贷方")]
        public decimal 贷方
        {
            get { return _贷方; }
            set { SetPropertyValue<decimal>("贷方", ref _贷方, value); }
        }

    }
    //[NavigationItem("财务管理")]
    //public class 凭证制作:BaseObject
    //{
    //    public 凭证制作(Session session)
    //        : base(session)
    //    {

    //    }

    //}
    //[NavigationItem("财务管理")]
    //public class 凭证管理 : BaseObject
    //{
    //    public 凭证管理(Session session)
    //        : base(session)
    //    {

    //    }
    //}
    [NavigationItem("财务管理")]
    public class 凭证过账 : BaseObject
    {
        public 凭证过账(Session session)
            : base(session)
        {

        }
    }
    [NavigationItem("财务管理")]
    public class 结转损益 : BaseObject
    {
        public 结转损益(Session session)
            : base(session)
        {

        }
    }
    [NavigationItem("财务管理")]
    public class 期末调汇 : BaseObject
    {
        public 期末调汇(Session session)
            : base(session)
        {

        }
    }
    #region 注释
    //[NavigationItem("财务管理")]
    //public class 收款单 : AbsOrder
    //{
    //    public 收款单(Session session)
    //        : base(session)
    //    {

    //    }
    //    protected override SeedType SeedType
    //    {
    //        get { return SeedType.收款单; }
    //    }
    //    //private string _收款单号;
    //    //[Custom("Caption", "收款单号")]
    //    //public string 收款单号
    //    //{
    //    //    get { return _收款单号; }
    //    //    set { SetPropertyValue<string>("收款单号", ref _收款单号, value); }
    //    //}
    //    //private DateTime _制单日期;
    //    //[Custom("Caption", "制单日期")]
    //    //public DateTime 制单日期
    //    //{
    //    //    get { return _制单日期; }
    //    //    set { SetPropertyValue<DateTime>("制单日期", ref _制单日期, value); }
    //    //}
    //    //private User _制单人;
    //    //[Custom("Caption", "制单人")]
    //    //public User 制单人
    //    //{
    //    //    get { return _制单人; }
    //    //    set { SetPropertyValue<User>("制单人", ref _制单人, value); }
    //    //}
    //    private decimal _应收款;
    //    [Custom("Caption", "应收款")]
    //    public decimal 应收款
    //    {
    //        get { return _应收款; }
    //        set { SetPropertyValue<decimal>("应收款", ref _应收款, value); }
    //    }
    //    private decimal _实收款;
    //    [Custom("Caption", "实收款")]
    //    public decimal 实收款
    //    {
    //        get { return _实收款; }
    //        set { SetPropertyValue<decimal>("实收款", ref _实收款, value); }
    //    }
    //    private DateTime _预收日期;
    //    [Custom("Caption", "预收日期 ")]
    //    public DateTime 预收日期
    //    {
    //        get { return _预收日期; }
    //        set { SetPropertyValue<DateTime>("预收日期 ", ref _预收日期, value); }
    //    }
    //    private DateTime _实收日期;
    //    [Custom("Caption", "实收日期")]
    //    public DateTime 实收日期
    //    {
    //        get { return _实收日期; }
    //        set { SetPropertyValue<DateTime>("实收日期", ref _实收日期, value); }
    //    }
    //    private 客户 _客户名称;
    //    [Custom("Caption", "客户名称")]
    //    public 客户 客户名称
    //    {
    //        get { return _客户名称; }
    //        set { SetPropertyValue<客户>("客户名称", ref _客户名称, value); }
    //    }
    //}
    //[NavigationItem("财务管理")]
    //public class 付款单 : AbsOrder
    //{
    //    public 付款单(Session session)
    //        : base(session)
    //    {

    //    }
    //    protected override SeedType SeedType
    //    {
    //        get { return SeedType.付款单; }
    //    }
    //    //private string _付款单号;
    //    //[Custom("Caption", "付款单号")]
    //    //public string 付款单号
    //    //{
    //    //    get { return _付款单号; }
    //    //    set { SetPropertyValue<string>("付款单号", ref _付款单号, value); }
    //    //}

    //    //private DateTime _制单日期;
    //    //[Custom("Caption", "制单日期")]
    //    //public DateTime 制单日期
    //    //{
    //    //    get { return _制单日期; }
    //    //    set { SetPropertyValue<DateTime>("制单日期", ref _制单日期, value); }
    //    //}
    //    //private User _制单人;
    //    //[Custom("Caption", "制单人")]
    //    //public User 制单人
    //    //{
    //    //    get { return _制单人; }
    //    //    set { SetPropertyValue<User>("制单人", ref _制单人, value); }
    //    //}
    //    private decimal _应付款;
    //    [Custom("Caption", "应付款")]
    //    public decimal 应付款
    //    {
    //        get { return _应付款; }
    //        set { SetPropertyValue<decimal>("应付款", ref _应付款, value); }
    //    }
    //    private decimal _实付款;
    //    [Custom("Caption", "实付款")]
    //    public decimal 实付款
    //    {
    //        get { return _实付款; }
    //        set { SetPropertyValue<decimal>("实付款", ref _实付款, value); }
    //    }
    //    private DateTime _预付日期;
    //    [Custom("Caption", "预付日期")]
    //    public DateTime 预付日期
    //    {
    //        get { return _预付日期; }
    //        set { SetPropertyValue<DateTime>("预付日期", ref _预付日期, value); }
    //    }

    //    private DateTime _实付日期;
    //    [Custom("Caption", "实付日期")]
    //    public DateTime 实付日期
    //    {
    //        get { return _实付日期; }
    //        set { SetPropertyValue<DateTime>("实付日期", ref _实付日期, value); }
    //    }

    //    private 客户 _客户名称;
    //    [Custom("Caption", "客户名称")]
    //    public 客户 客户名称
    //    {
    //        get { return _客户名称; }
    //        set { SetPropertyValue<客户>("客户名称", ref _客户名称, value); }
    //    }

    //}

    //[NavigationItem("财务管理")]
    //public class 银行账户 : BaseObject
    //{
    //    public 银行账户(Session session)
    //        : base(session)
    //    {

    //    }
    //    private string _银行名称;
    //    [Custom("Caption", "银行名称")]
    //    public string 银行名称
    //    {
    //        get { return _银行名称; }
    //        set { SetPropertyValue<string>("银行名称", ref _银行名称, value); }
    //    }
    //    private string _银行账号;
    //    [Custom("Caption", "银行账号")]
    //    public string 银行账号
    //    {
    //        get { return _银行账号; }
    //        set { SetPropertyValue<string>("银行账号", ref _银行账号, value); }
    //    }
    //    private string _银行地址;
    //    [Custom("Caption", "银行地址")]
    //    public string 银行地址
    //    {
    //        get { return _银行地址; }
    //        set { SetPropertyValue<string>("银行地址", ref _银行地址, value); }
    //    }
    //    private decimal _余额;
    //    [Custom("Caption", "余额")]
    //    public decimal 余额
    //    {
    //        get { return _余额; }
    //        set { SetPropertyValue<decimal>("余额", ref _余额, value); }
    //    }
    //    private 货币类型 _币别;
    //    [Custom("Caption", "币别")]
    //    public 货币类型 币别
    //    {
    //        get { return _币别; }
    //        set { SetPropertyValue<货币类型>("币别", ref _币别, value); }
    //    }
    //}
    //public class 货币类型 : XPLiteObject
    //{
    //    public 货币类型(Session session)
    //        : base(session)
    //    {

    //    }
    //    private string _货币名称;
    //    [Custom("Caption", "货币名称")]
    //    [Key(false)]
    //    public string 货币名称
    //    {
    //        get { return _货币名称; }
    //        set { SetPropertyValue<string>("货币名称", ref _货币名称, value); }
    //    }
    //}
    #endregion
}
